#pragma once

#include "rclcpp/rclcpp.hpp"
#include <std_msgs/msg/string.hpp>
#include <opencv2/opencv.hpp>

using namespace std;
using namespace rclcpp;

// 宏定义控制鼠标交互方式
// #define MOUSE_HOVER_MODE // 启用鼠标悬停模式
#define MOUSE_CLICK_MODE // 启用鼠标点击模式

// 全局变量
int g_u = 0;   // 图像坐标u
int g_v = 0;   // 图像坐标v
cv::Mat frame; // 畸变图像（全局变量以便在回调函数中访问）

class Mouse : public rclcpp::Node
{
public:
    Mouse();
    void Timer_Callback_01();
    // void Sub_Callback(message_interface_ice::msg::Mouse::SharedPtr String_);

private:
    TimerBase::SharedPtr Timer_01;
    cv::VideoCapture cap; // 视频捕获对象
    // Subscription<std_msgs::msg::String>::SharedPtr Sub_;
    // Subscription<message_interface_ice::msg::Mouse>::SharedPtr Sub_;
    // Publisher<message_interface_ice::msg::Mouse>::SharedPtr Pub_;
};
